Coverage Threshold সেট করা এবং রিপোর্ট বিশ্লেষণ

Code Coverage এবং Istanbul Integration - জ্যাসমিনজেএস (JasmineJS) - Web Development

205

জ্যাসমিনজেএস (JasmineJS) টেস্টিং ফ্রেমওয়ার্কটি সাধারণত ইউনিট টেস্টের জন্য ব্যবহৃত হয়, তবে টেস্ট কভারেজ (Test Coverage) ট্র্যাক করতে এটি সরাসরি কোনো বিল্ট-ইন টুল প্রদান করে না। তবে, আপনি Karma এবং Istanbul বা coverage-istanbul-reporter ব্যবহার করে JasmineJS টেস্ট কভারেজ ট্র্যাক করতে পারেন এবং কভারেজ রিপোর্ট বিশ্লেষণ করতে পারেন। এই টুলগুলির সাহায্যে আপনি আপনার কোডের কভারেজ পরিমাণ দেখতে পারবেন এবং নির্দিষ্ট থ্রেশহোল্ড সেট করতে পারবেন, যা টেস্ট সফলভাবে পাস করতে হলে সে পরিমাণ কভারেজ থাকতে হবে।


Coverage Threshold সেট করা

Karma এর মাধ্যমে JasmineJS টেস্টের কভারেজ যাচাই করতে হলে প্রথমে আপনাকে কিছু নির্দিষ্ট কনফিগারেশন সেটআপ করতে হবে। এটি নিশ্চিত করবে যে আপনার টেস্টগুলো একটি নির্দিষ্ট কভারেজ থ্রেশহোল্ড মিট করে, অন্যথায় টেস্ট ফেইল করবে।

1. Karma, Jasmine এবং Coverage প্লাগিন ইনস্টল করা

প্রথমে Karma, Jasmine এবং কভারেজ সম্পর্কিত কিছু প্লাগিন ইনস্টল করতে হবে।

npm install karma karma-jasmine karma-chrome-launcher karma-coverage --save-dev

2. Karma কনফিগারেশন ফাইল সেটআপ করা

Karma কনফিগারেশন ফাইলে কিছু টুলস এবং কভারেজ রিপোর্টার সেটআপ করতে হবে।

// karma.conf.js
module.exports = function(config) {
  config.set({
    frameworks: ['jasmine'],
    browsers: ['ChromeHeadless'],  // হেডলেস মোডে Chrome ব্যবহার
    reporters: ['progress', 'coverage'],  // কভারেজ রিপোর্টের জন্য 'coverage' ব্যবহার
    files: [
      'src/**/*.js',  // আপনার সোর্স ফাইল
      'spec/**/*.js'  // আপনার টেস্ট ফাইল
    ],
    preprocessors: {
      'src/**/*.js': ['coverage']  // কভারেজ প্রিসেসর
    },
    coverageReporter: {
      type: 'html',  // কভারেজ রিপোর্ট HTML আউটপুট হিসেবে হবে
      dir: 'coverage/'  // রিপোর্ট যেখানে সেভ হবে
    },
    coverageThreshold: {  // থ্রেশহোল্ড সেট করা
      global: {
        statements: 80,  // 80% স্টেটমেন্ট কভারেজ
        branches: 75,    // 75% ব্রাঞ্চ কভারেজ
        functions: 85,   // 85% ফাংশন কভারেজ
        lines: 80        // 80% লাইনের কভারেজ
      }
    }
  });
};

এখানে:

  • coverageReporter: কভারেজ রিপোর্ট কোথায় এবং কিভাবে তৈরি হবে তা নির্ধারণ করা হয়।
  • coverageThreshold: আপনি যে পরিমাণ কভারেজ আশা করছেন, তার জন্য থ্রেশহোল্ড সেট করা হয়। উপরের উদাহরণে, মোট স্টেটমেন্ট, ব্রাঞ্চ, ফাংশন এবং লাইনে কভারেজ যথাক্রমে 80%, 75%, 85%, এবং 80% রাখা হয়েছে।

3. টেস্ট রান করা

এখন আপনি karma start কমান্ড ব্যবহার করে টেস্ট রান করতে পারবেন। যদি কভারেজ থ্রেশহোল্ড পূর্ণ না হয়, তবে Karma টেস্ট ফলাফল হিসাবে একটি ত্রুটি (error) দেখাবে।

karma start karma.conf.js

এখানে:

  • karma.conf.js: আপনার কনফিগারেশন ফাইল।
  • যদি কভারেজ থ্রেশহোল্ড না পূর্ণ হয়, Karma টেস্ট ব্যর্থ হবে এবং একটি ত্রুটি ফিরিয়ে দেবে।

কভারেজ রিপোর্ট বিশ্লেষণ

JasmineJS এবং Karma ব্যবহার করে কভারেজ রিপোর্ট তৈরি করার পর, সেই রিপোর্ট বিশ্লেষণ করা গুরুত্বপূর্ণ। কভারেজ রিপোর্ট আপনাকে কোডের কতটা অংশ পরীক্ষিত হয়েছে এবং কোন কোন অংশে টেস্ট কভারেজ নেই, তা দেখাবে।

কভারেজ রিপোর্ট ফাইল

কভারেজ রিপোর্ট সাধারণত coverage/ ডিরেক্টরিতে সেভ হয়, এবং এটি HTML ফরম্যাটে তৈরি হয়। আপনি আপনার ব্রাউজারে সেই রিপোর্টটি ওপেন করতে পারেন।

  1. HTML কভারেজ রিপোর্ট: এটি একটি ইন্টারেক্টিভ রিপোর্ট তৈরি করে যা আপনি ব্রাউজারে দেখতে পারবেন।
    • রিপোর্টটি সাধারণত coverage/index.html ফাইলে পাওয়া যায়।
    • আপনি যদি এই ফাইলটি ব্রাউজারে ওপেন করেন, তাহলে আপনি দেখতে পাবেন আপনার কোডের বিভিন্ন অংশ কতটা কভারেজ পেয়েছে।

রিপোর্ট বিশ্লেষণ

রিপোর্টটি তিনটি প্রধান অংশে বিভক্ত থাকে:

  1. Statements: টেস্ট করা কোডের মোট স্টেটমেন্টের শতকরা অংশ।
  2. Branches: কোডের শাখাগুলোর কভারেজ (যেমন if বা switch statements)।
  3. Functions: ফাংশন বা মেথডের কভারেজ।
  4. Lines: কোডের প্রতিটি লাইনের কভারেজ।

প্রতিটি অংশে কতটা কভারেজ হয়েছে, তার একটি শতকরা হিসাব রিপোর্টে দেখানো হয়। যদি কোনো অংশে কভারেজ কম থাকে, আপনি সেই অংশের জন্য আরও টেস্ট কেস যোগ করতে পারেন।


কভারেজ রিপোর্টে গুরুত্বপূর্ণ তথ্য

  • Uncovered Lines: যেসব কোডের লাইনে টেস্ট হয়নি, সেগুলোর উপর ক্লিক করলে আপনি দেখতে পাবেন সেই লাইনের জন্য কোনো টেস্ট কেস লেখা হয়নি।
  • Functions Not Covered: কোনো ফাংশনের মধ্যে যদি টেস্ট না থাকে, তবে সেটি রিপোর্টে দেখা যাবে। এটা আপনাকে আপনার কোডের অপরীক্ষিত অংশগুলি চিহ্নিত করতে সহায়তা করবে।
  • Branches Not Covered: কোডের শাখাগুলোর মধ্যে কোন অংশ টেস্ট করা হয়নি, তা সহজেই চিহ্নিত করা যায়।

সারাংশ

  • Coverage Threshold সেট করার মাধ্যমে আপনি নিশ্চিত করতে পারেন যে আপনার কোডের নির্দিষ্ট অংশগুলোর জন্য পর্যাপ্ত টেস্ট কভারেজ রয়েছে। এটি টেস্ট সিকিউরিটি বৃদ্ধি করে এবং আপনার কোডের নির্ভরযোগ্যতা নিশ্চিত করতে সহায়তা করে।
  • Karma এবং Istanbul (অথবা coverage-istanbul-reporter) ব্যবহার করে JasmineJS টেস্টের কভারেজ রিপোর্ট তৈরি করা সম্ভব এবং HTML রিপোর্ট মাধ্যমে কভারেজ বিশ্লেষণ করা যায়।
  • Coverage Threshold সেট করে আপনি একটি মিনিমাম কভারেজ স্তর নিশ্চিত করতে পারেন, যা আপনার টেস্ট প্রক্রিয়াকে আরও শক্তিশালী এবং নির্ভরযোগ্য করে তোলে।

Karma কনফিগারেশন এবং রিপোর্ট বিশ্লেষণ আপনাকে কোডের পূর্ণাঙ্গ টেস্ট কভারেজ এবং সঠিক টেস্ট কেস তৈরি করতে সহায়তা করবে, যাতে আপনার অ্যাপ্লিকেশন বা ওয়েবসাইট সঠিকভাবে কাজ করে।

Content added By
Promotion

Are you sure to start over?

Loading...